# # 字符串基础操作题
# #
# # 假设有一个初始字符串 `s = "Hello, Python world!"`，进行下面的操作：
#
# s = "Hello, Python world!"
#
# #  1. 字符串长度计算
# print(len(s))
#
# #  2. 计算字符串中"o"字符的个数
# print(s.count('o'))
#
# #  3. 将字符串转换为大写
# print(s.upper())
#
# #  4. 将字符串转换为小写
# print(s.lower())
#
# #  5. 查找"Python"在字符串中的位置
# print(s.find("Python")) #输出“P”的索引值
#
# #  6. 替换字符串中的"world"为"universe"
# print(s.replace("world","universe")) #Hello, Python universe!
# print(s) #Hello, Python world!没有改变s
# # replace 不会改变原 string 的内容。
#
# #  7. 检查字符串是否以"Hello"开始
# # 方法一：
# print(s.find("Hello") == 0)
# # 方法二：
# result=s.startswith("Hello")
# print(result)
#
# #  8. 检查字符串是否以"!"结尾
# result=s.endswith("!")
# print(result)
#
# #  9. 以","为分隔符，拆分字符串
# # print(s.split(","))
#
# #  10. 去除字符串首尾的"!"
# # strip() 方法用于移除字符串头尾指定的字符（默认为空格或换行符）或字符序列。
# # 注意：该方法只能删除开头或是结尾的字符，不能删除中间部分的字符。
# print(s.strip('!'))  #Hello, Python world
# print(s)  #Hello, Python world!  s未改变
#
# #  11. 字符串反转
# result=s[::-1]
# print(result)
# print(s)
#
# #  12. 字符串切片，获取"Python"
# index=s.find("Python")
# print(s[index:index+6])
#
# #  13. 将字符串s中的"Hello,"删除
# result=s.replace("Hello,","") #替换
# print(result.lstrip()) #去除左侧空格
#
# #  14. 拼接两个字符串 "Hello," 和 "World!"
# str1="Hello,"
# str2="World!"
# str3=str1+str2
# print(str3)
#
# #  15. 使用f-string合并字符串和数字2021
# print(f'{str3}2021')
#
# #  16. 找出'o'第一次出现的位置
# result=s.find('o')
# print(result)
# #  17. 找出'e'最后一次出现的位置
# s1="sfs lekj rb fqie jdnkej"
# # result=s1[::-1].find('e')
# # print(result)   #1
# # 正确
# result=s1.rfind('e')
# print(result)
#
# #  18. 计算字符串中空格的数量
# result=s1.count(" ")
# print(result)
#
# #  19. 使用循环遍历字符串中的每个字符
# # for x in s1:
# #     print(x,end="")
#
# #  20. 将字符串转为"列表"形式，每个字符为一个列表元素
# # 方法一：
# # result=[]
# # for x in s1:
# #     if x != " ":
# #         result.append(x)
# # print(result)
#
# #方法二
# result=[x for x in s1 if x != " "]
# print(result)
#
# #  😢21. 字符串排序（提示：先转换为列表）
# result.sort()
# s2="".join(result)
# print(s2)  #bdeeeffijjjkklnqrss
# #Python 的 list.sort() 方法会直接修改列表，但返回值是 None，而不是排序后的列表。
# # sorted() 函数（返回新列表，不修改原列表）
# #😢s2="".join(result)什么意思
# # s2="".join(result)
# # print(s2)  #bdeeeffijjjkklnqrss
# #
# # s2="，".join(result)
# # print(s2)  #b，d，e，e，e，f，f，i，j，j，j，k，k，l，n，q，r，s，s
# # 每个字符串元素用指定的分隔符连接起来，形成一个新的字符串。




#  22. 判断字符串是否为数字
#❔判断字符串是否为纯数字
# result=s.isdigit()
# print(result)
# 如果 string 只包含数字则返回 True 否则返回 False.

#❔判断字符串是否包含数字
# for x in s:
#      result=x
#      if result.isdigit()==True:
#         print('字符串中有数字')
#         break
#      else:continue
#
# # 进阶一下
# s = "abc"
# has_digit = False
# for x in s:
#     if x.isdigit():
#         print('字符串中有数字')
#         has_digit = True
#         break
# if not has_digit:
#     print('字符串中没有数字')





#  23. 将列表 `['Hello,', 'Python', 'World!']` 使用空格连接为一个字符串
list1=['Hello,', 'Python', 'World!']
result=" ".join(list1)
print(result)
#  😢24. 使用%操作符格式化字符串，将数字100插入到"Number: "后面
#  25. 检查字符串是否全部为小写字母islower()
a=result.islower()
print(a)
#  26. 检查字符串是否全部为大写字母isupper()
a=result.isupper()
print(a)
#  27. 将数字列表 `[1, 2, 3]` 转换成字符串，元素之间用`-`连接

# list3="-".join(str(x) for x  in [1,2,3])  #join()括号里面必须传入字符串
# print(list3)
#  28. 找出字符串中所有的"o"的位置

# print(s.find("2"))
# s3=s[0:4:1]
# print(s)
# print(s3)
# s=s.replace(s3,"")
# print(s)
# s="wehiouh1dooheirobehk"
# for i in range(len(s)):
#     if len(s)!=0:
#         if s.find("o") != -1: #存在
#             index=s.find("o")
#             s1 = s[0:index + 1:1]
#             s = s.replace(s1, "")
#             a = index+1+a
#             print(a)
#
#         else:continue  #不存在
#     else:break
# #
# position=[i for i,char in enumerate(s) if char=='o']
# print(position)




#  29. 替换字符串中的第一个"o"为"O"

# index=s.find("o")
# if index!= -1:
#     s=s[:index]+'0'+s[index+1:]  # Python 中字符串是不可变对象，无法直接通过索引赋值来修改
# print(s)

#  30. 字符串插入操作，向字符串指定位置插入子字符串"amazing "
# s = "Python is cool"
# position = 10  # 在索引10的位置插入
# new_s = s[:position] + "amazing " + s[position:]
# print(new_s)  # 输出: "Python is amazing cool"